package com.canaan.business.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.canaan.common.annotation.Excel;
import com.canaan.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 生产入库申请单对象 wms_pro_stock_apply
 *
 * @author ruoyi
 * @date 2022-12-19
 */
public class WmsProStockApplyVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 编号 */
    @Excel(name = "申请单编号")
    private String no;

    /** 申请状态 1新建 2进行中 */
    @Excel(name = "申请单状态", dictType = "invoice_order_status")
    private Integer orderStatus;

    /** 工单编号 */
//    @Excel(name = "工单编号")
    private String workOrderNo;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applicant;

    /** 区域 */
    @Excel(name = "区域")
    private String area;

    /**
     * 线边仓
     */
    @Excel(name = "线边仓")
    private String storehouseNo;

    /**
     * 线边仓名称
     */
    @Excel(name = "线边仓名称")
    private String storehouseName;

    /** 入库申请总数 */
    @Excel(name = "入库申请总数")
    private Long totalOrderQty;

    /** 实际入库总数 */
    @Excel(name = "实际入库总数")
    private Long totalActualQty;

    /** 物料编号 */
    @Excel(name = "物料编号")
    private String productNo;

//    /** 申请明细状态 1新建 2已分配 3已入库 */
//    @Excel(name = "申请明细状态", dictType = "invoice_pro_stock_apply_detail_status")
//    private Integer orderDetailStatus;

    /** 入库申请数 */
    @Excel(name = "入库申请数")
    private Long orderQty;
//
//    /** 实际入库数 */
//    @Excel(name = "实际入库数")
//    private Long actualQty;

    /** 排序 */
//    @Excel(name = "排序")
    private Integer sort;

    /** 是否删除：1是 0否 */
    private String delFlag;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createBy;

    /** 创建时间 */
    @Excel(name = "创建时间", type = Excel.Type.EXPORT, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新人 */
    @Excel(name = "更新人")
    private String updateBy;

    /** 更新时间 */
    @Excel(name = "最后更新时间", type = Excel.Type.EXPORT, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setNo(String no)
    {
        this.no = no;
    }

    public String getNo()
    {
        return no;
    }
    public void setOrderStatus(Integer orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus()
    {
        return orderStatus;
    }
    public void setWorkOrderNo(String workOrderNo)
    {
        this.workOrderNo = workOrderNo;
    }

    public String getWorkOrderNo()
    {
        return workOrderNo;
    }
    public void setCompleteTime(Date completeTime)
    {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime()
    {
        return completeTime;
    }
    public void setApplicant(String applicant)
    {
        this.applicant = applicant;
    }

    public String getApplicant()
    {
        return applicant;
    }
    public void setArea(String area)
    {
        this.area = area;
    }

    public String getArea()
    {
        return area;
    }
    public void setTotalOrderQty(Long totalOrderQty)
    {
        this.totalOrderQty = totalOrderQty;
    }

    public Long getTotalOrderQty()
    {
        return totalOrderQty;
    }
    public void setTotalActualQty(Long totalActualQty)
    {
        this.totalActualQty = totalActualQty;
    }

    public Long getTotalActualQty()
    {
        return totalActualQty;
    }
    public void setSort(Integer sort)
    {
        this.sort = sort;
    }

    public Integer getSort()
    {
        return sort;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String getUpdateBy() {
        return updateBy;
    }

    @Override
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    @Override
    public Date getUpdateTime() {
        return updateTime;
    }

    @Override
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("no", getNo())
            .append("orderStatus", getOrderStatus())
            .append("workOrderNo", getWorkOrderNo())
            .append("completeTime", getCompleteTime())
            .append("applicant", getApplicant())
            .append("area", getArea())
            .append("totalOrderQty", getTotalOrderQty())
            .append("totalActualQty", getTotalActualQty())
            .append("sort", getSort())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }

    public String getStorehouseNo() {
        return storehouseNo;
    }

    public void setStorehouseNo(String storehouseNo) {
        this.storehouseNo = storehouseNo;
    }

    public String getStorehouseName() {
        return storehouseName;
    }

    public void setStorehouseName(String storehouseName) {
        this.storehouseName = storehouseName;
    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public Long getOrderQty() {
        return orderQty;
    }

    public void setOrderQty(Long orderQty) {
        this.orderQty = orderQty;
    }
}
